+2006-11-26 Ryan Lortie <desrt@desrt.ca>
+
+ * docs/reference/gtk/tmpl/gtkbuildable.sgml: add clarification stating
+ that the construct_child function is responsible for returning a
+ reference.
+ * gtkbuilder.c (_gtk_builder_construct): remove g_object_ref() for
+ objects from constructors
+ * gtkuimanager.c (gtk_ui_manager_buildable_construct_child): add
+ g_object_ref() to this construction function (it's the only
+ implementer in GTK)
+
+ Fixes #496645.
+
2006-11-26 Ryan Lortie <desrt@desrt.ca>
* gtkbuilder.c: remove concept of root objects and just refcount
@construct_child: Constructs a child of a buildable that has been
specified as "constructor" in the UI definition. #GtkUIManager implements
this to reference to a widget created in a <ui> tag which is outside
- of the normal GtkBuilder UI definition hierarchy.
+ of the normal GtkBuilder UI definition hierarchy. A reference to the
+ constructed object is returned and becomes owned by the caller.
@custom_tag_start: Implement this if the buildable needs to parse
content below <child>. To handle an element, the implementation
must fill in the @parser structure and @user_data and return %TRUE.
g_assert (obj != NULL);
if (construct_parameters->len)
g_warning ("Can't pass in construct-only parameters to %s", info->id);
- g_object_ref (obj);
}
else if (info->parent && ((ChildInfo*)info->parent)->internal_child != NULL)
{
g_signal_connect (widget, "hierarchy-changed",
G_CALLBACK (child_hierarchy_changed_cb),
GTK_UI_MANAGER (buildable));
- return G_OBJECT (widget);
+ return g_object_ref (widget);
}
static void